/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.com.switz.controller;

import java.util.List;
import mx.com.switz.dto.Pedido;
import mx.com.switz.service.EmpresaService;
import mx.com.switz.service.PedidoService;
import mx.com.switz.utils.mail.MailMail;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

/**
 *
 * @author user10
 */
@Controller
@RequestMapping("pedido/")
public class PedidoController {

    @Autowired
    private PedidoService pedidoService;
    private MailMail mailMail;

    @RequestMapping("pedido")
    public String goPedido() {
        return "pedido/pedido";
    }
     @RequestMapping("detalle")
    public String goDetalle() {
        return "pedido/detallePedido";
    }
     
     @RequestMapping("prueba")
     public void goPrueba(@RequestParam String param){
         System.out.println("Probando:......" + param);
     }
             
     @RequestMapping(value="javamailPedido",method= RequestMethod.POST)    
    public String javamailPedido(String para,String asunto,String mensaje){
      // Empresa us=new Empresa();
        para="jazielvazquezjimenez@gmail.com";
        asunto="Aceptar";
        mensaje="pedido aceptado :D ";
        mailMail.sendMail(para, asunto,
                            mensaje);
                   return "pedido/detalle";
    }
     @RequestMapping("pedidoUsuario")
     public String goPedidoUsuario(){
     return "pedido/pedidoUsuario";
     }

    @RequestMapping("insertPedido")
    public String insertPedido(@RequestParam("claveEmpresa") int claveEmpresa, @RequestParam("fecha") String fecha,
            @RequestParam("direccion") String direccion, @RequestParam("colonia") String colonia,
            @RequestParam("municipio") String municipio, @RequestParam("codigoPostal") String codigoPostal,
            @RequestParam("claveUsuario") String claveUsuario, @RequestParam("notasRecibe") String notasRecibe,
            @RequestParam("total") double total, @RequestParam("fechaPedido") String fechaPedido,
            @RequestParam("fechaEntrega") String fechaEntrega, @RequestParam("nombrePersonaEntregar") String nombrePersonaEntregar,
            @RequestParam("status") int status) {
        Pedido p = new Pedido();
        // a.setClave(clave);
        p.setClaveEmpresa(claveEmpresa);
        p.setFecha(fecha);
        p.setDireccion(direccion);
        p.setColonia(colonia);
        p.setMunicipio(municipio);
        p.setCodigoPostal(codigoPostal);
        p.setClaveUsuario(claveUsuario);
        p.setNotasRecibe(notasRecibe);
        p.setTotal(total);
        p.setFechaPedido(fechaPedido);
        p.setFechaEntrega(fechaEntrega);
        p.setNombrePersonaEntregar(nombrePersonaEntregar);
        p.setStatus(status);
        pedidoService.insertPedido(p);
        return "pedido/pedido";
    }
    
     //borrado
     @RequestMapping("borrar")
     public String goBorra() {
     return "pedido/borraPedido";
     }

     @RequestMapping("delete")
     public String eliminaPedido(@RequestParam("clave") int clave) {
     Pedido a = new Pedido();
     a.setClave(clave);
     pedidoService.eliminaPedido(a);
     return "pedido/borraPedido";
     }

     //actualiza
     @RequestMapping("modifica")
     public String goModifica() {
     return "pedido/buscaPedidoModificar";
     }

     @RequestMapping("updatePedido")
     public String updatePedido(@RequestParam("claveEmpresa") int claveEmpresa, @RequestParam("fecha") String fecha,
     @RequestParam("direccion") String direccion, @RequestParam("colonia") String colonia,
     @RequestParam("municipio") String municipio, @RequestParam("codigoPostal") String codigoPostal,
     @RequestParam("claveUsuario") String claveUsuario,@RequestParam("notasRecibe") String notasRecibe,
     @RequestParam("total") double total,@RequestParam("fechaPedido") String fechaPedido,
     @RequestParam("fechaEntrega") String fechaEntrega,@RequestParam("nombrePersonaEntregar") String nombrePersonaEntregar,
     @RequestParam("status") int status) {
     Pedido p = new Pedido();
     p.setClaveEmpresa(claveEmpresa);
     p.setFecha(fecha);
     p.setDireccion(direccion);
     p.setColonia(colonia);
     p.setMunicipio(municipio);
     p.setCodigoPostal(codigoPostal);
     p.setClaveUsuario(claveUsuario);
     p.setNotasRecibe(notasRecibe);
     p.setTotal(total);
     p.setFechaPedido(fechaPedido);
     p.setFechaEntrega(fechaEntrega);
     p.setNombrePersonaEntregar(nombrePersonaEntregar);
     p.setStatus(status);
     pedidoService.actualizaPedido(p);
     return "pedido/buscaPedidoModificar";
     }

     //Lista pedidos por nombre
     @RequestMapping("buscar")
     public String goBuscar() {
     return "pedido/buscaPedidoNombre";
     }

     @RequestMapping("listar")
     public ModelAndView buscaPedido(@RequestParam("fecha") String fecha) {
     Pedido a = new Pedido();
     a.setFecha(fecha);
     pedidoService.findPedidoByNombre(a);
     return new ModelAndView("pedido/listarPedidos", "pedidos", pedidoService.findPedidoByNombre(a));
     }
     //busca pedido por nombre y lo manda a formulario de JSP datosPedido

     @RequestMapping("listar2")
     public ModelAndView busca2Pedido(@RequestParam("clave") int clave) {
     Pedido a = new Pedido();
     // a.setNombre(clave);
     a.setClave(clave);
     //a.setDetalles(apePAterno);
     pedidoService.findPedidoById(a);
     return new ModelAndView("pedido/datosPedido", "pedidos", pedidoService.findPedidoById(a));
     }
     //Manda a llamar directamente el JSP desplegarPedidos. 
     //Muestra todos los pedidos

     

    @RequestMapping("mostrar")
    @ResponseBody
    public List muestraPedido() {
        return pedidoService.listarPedidos();
        //  return new ModelAndView("pedido/desplegarPedidos", "pedidos", pedidoService.listarPedidos());
    }

}
